
public class PLPlayerModel extends PLPlayer {
	PLLayerManager mLayerMgr;
	PLImageManager mImageMgr;
	// here there will be an object for image processing module

	public PLPlayerModel(String name) {
		super(name);
		Init();
	}

	private boolean Init() {
		mLayerMgr = new PLLayerManager(GetName());	
		mImageMgr =  new PLImageManager(GetName());	
		return true;
	}

	// given a query shape, comes up with a response after qurying both the 
	public float GenResponse(PLShape query, PLOutShape  outResponse) {
		PLOutShape layerResponse = new PLOutShape();
		
		float layerConfidence = mLayerMgr.GenResponse(query, layerResponse);
		
		PLOutShape imageResponse = new PLOutShape();
		float imageConfidence = mImageMgr.GenResponse(query, imageResponse);

		if (layerConfidence + 0.2 > imageConfidence) {
			outResponse.copyOf(layerResponse);
			return layerConfidence;
		} else {
			outResponse.copyOf(imageResponse);
			return imageConfidence;
		}		
	}		
}
